In computer systems, such as existing interactive response systems (IVR), it is customary to run applications which are independent from each other. Often, however, more than one application may be necessary to solve a particular user problem or to provide a particular service to a user.
Take, for example, IVR systems in which a user responds to a sequential series of prompts in order to obtain information, such as a ball score, weather forecasts forces, a banking balance, an airline reservation, etc. IVR systems, like other computer systems, are organized into applications with each application being specialized to perform a particular function. Each such application has associated with it its own grammar (whether voice based, browser based or multi-frequency, i.e., touch-tone, based) and thus sometimes it is necessary to use two or more applications in a single call or session with a user.
For example, if a user is asking about the ball score of a particular team a ball score application will be activated. If that user thereafter (or in the middle of the script thereof) asks about the weather (perhaps trying to decide whether to purchase tickets), the system will (as discussed with respect to the above co-pending and commonly-assigned U.S. patent application Ser. No. 11/208,028, entitled “SYSTEM AND METHOD FOR INHERITANCE OF ADVERTISED FUNCTIONALITY IN A USER INTERACTIVE SYSTEM”, transfer the user to a weather application. The weather script will then prompt the user for certain information, including the user's identification and location, in order to provide the proper forecast. This is a waste of system resources as well as a waste of user time since the system either knew or could infer the location the caller was interested in (or at least to a high degree of probability). In this case the user is interested in the weather at the location of the sports event the user was inquiring about.
This is but one simple example of situations where a specific application in a multi-application framework requires data from (or about) a user that may have been already gathered by another application.
The problem is even further compounded when the various applications are not commonly designed at the same time or by the same designer. Several applications may be put into a system in a plug and play manner such that each application has no knowledge of the existence of other applications. When applications are constructed independently the designers do not know about the other applications and thus cannot easily (if at all) build proper inter-application “hooks” into these applications. Also service providers need a framework that allows a multi-application services platform to be deployed with a broad range of applications installed where the system can control the range of applications available to each subscriber.